package mkpsolving;

import java.util.ArrayList;
import java.util.List;

/**
 * User: Nacer
 * Date: 18/03/14
 * Time: 10:18
 */

// Cette classe représente un sac avec son emplacement, son voulume et la composition de son optimum,
// dans le cas où ce sac fait partie d'une solution viable on lui fournit la liste des objets qu'il doit contenir et le bénéfice qu'il représente
public class Sac {

    private double volume;
    private static int nbid=1;
    private  int id;
    private boolean solution = false;
    private List<Double> choix  = new ArrayList<Double>();
    private double eval;
    private List<Objet> chosenObjet = new ArrayList<Objet>();

    public Sac(double volume) {
        this.volume = volume;
        id = nbid;
        nbid++;
    }

    public double getvolume() {
        return volume;
    }

    public List<Double> getChoix() {
        return choix;
    }

    public int getId() {
        return id;
    }

    public void setChoix(List<Double> choix) {
        this.choix = choix;
    }

    public void setSolution(boolean solution) {
        this.solution = solution;
    }

    public boolean isSolution() {
        return solution;
    }

    public void setEval(double eval) {
        this.eval = eval;
    }

    public List<Objet> getChosenObjet() {
        return chosenObjet;
    }

    @Override
    public String toString() {
        String s = "";
        for (Objet o : chosenObjet) {
               s+=o.toString()+"\n";
        }
        return "\nRemplir le sac "+ getId()+" avec les objets suivants:\n"+s+"pour un bénéfice total de "+eval;
    }
}
